// #include <stdio.h>

//  int main()
//  {
//     int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//     int *p = &arr[0];
//     int sz = sizeof(arr)/sizeof(arr[0]);
//     while(p < arr + sz) //指针的⼤⼩⽐较
//     {
//         // printf("%d ", *++p);
//         printf("%d ", *(++p));
//         // p++;
//     }
//     return 0;
//  }


// #include <stdio.h>

// void test(int* arr)//参数写成指针形式
// {
//     printf("%d\n", sizeof(arr));//计算⼀个指针变量的⼤⼩
// }
// int main()
// {
//     int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//     test(arr);
//     return 0;
// }

#include <stdio.h>

int add(int a, int b)
{
    return a + b;
}

int sub(int a, int b)
{
    return a - b;
}

int mul(int a, int b)
{
    return a * b;
}

int div(int a, int b)
{
    return a / b;
}

int main()
{
    int x, y;
    int input = 1;
    int ret = 0;
    int(*p[5])(int x, int y) = { 0, add, sub, mul, div }; //转移表
    do
    {
        printf("*************************\n");
        printf(" 1:add 2:sub \n");
        printf(" 3:mul 4:div \n");
        printf(" 0:exit \n");
        printf("*************************\n");
        printf("请选择：");
        scanf("%d", &input);
        if ((input <= 4 && input >= 1))
        {
            printf("输⼊操作数：");
            scanf("%d %d", &x, &y);
            ret = (*p[input])(x, y);
            printf("ret = %d\n", ret);
        }
        else if(input == 0)
        {
            printf("退出计算器\n");
        }
        else
        {
            printf("输⼊有误\n");
        }
    } while (input);
    return 0;
}
